****************************************************************************
*** Replication code for "Algorithmic Aversion? Experimental Evidence on ***
*** the Elasticity of Public Attitudes to "Killer Robots" by Ondrej      ***
*** Rosendorf, Michal Smetana, and Marek Vranka                          ***
****************************************************************************

*** Instructions for replication ***

* The code was written in Stata 17.0 BE-Basic Edition
* Please reach out to ondrej.rosendorf@fsv.cuni.cz if you have any questions concerning this replication file
* IMPORTANT: This file is accompanied by the ss_replication_data3 dataset
* Before proceeding with the replication, please make sure that the "asdoc", "catcibar", "catplot", "coefplot", and "estout" package is installed

* To install the asdoc package, use the following command
ssc install asdoc, replace

* To install the catcibar package, use the following commands
ssc install mylabels, replace
net install catcibar, from("https://aarondwolf.github.io/catcibar")

* To install the catplot package, use the following command
ssc install catplot, replace

* To install the asdoc package, use the following command
ssc install coefplot, replace

* To install the estout package, use the following command
ssc install estout, replace

* Setting the output scheme to black and white
set scheme s1mono

***************************************************
*** Replication of the results in the main text ***
***************************************************

*** Figure 5 (catplots) - perceived differences in legal accountability and moral responsibility ***

* Generating a labelled version of the legal3 variable
recode legal3 (1=1 "LAWS worse") (2=2 "both are the same") (3=3 "RC drones worse"), generate(legal3_label)

* Generating a labelled version of the moral3 variable
recode moral3 (1=1 "LAWS worse") (2=2 "both are the same") (3=3 "RC drones worse"), generate(moral3_label)

* Generating a catplot of legal3
catcibar legal3_label, prop title("Legal accountability") subtitle("The difficulty of holding someone" "legally accountable") ytitle("% of participants") wrapxlab(14) saving(catplot1.gph)

* Generating a catplot of moral3
catcibar moral3_label, prop title("Moral responsibility") subtitle("The difficulty of holding someone" "morally responsible") ytitle("% of participants") wrapxlab(14) saving(catplot2.gph)

* Combining the two catplots into one figure
* WARNING: Color of confidence intervals, Y-axis scale and labels, and values within each bar do not match with Figure 5 in the main text; We changed/added those manually in the built-in Stata graph editor due to limited functionality of the "catcibar" command; Those wishing to replicate the exact same visualization in the main text may inspect the changes in the "rsv_ss_replication_F05.gph" file.
gr combine catplot1.gph catplot2.gph

* Exporting the catplot (Figure 5)
graph export F05.png

*** Figure 8 (catplots) - perceived differences in human dignity and ethicality ***

* Generating a labelled version of the dignity3 variable
recode dignity3 (1=1 "LAWS worse") (2=2 "both are the same") (3=3 "RC drones worse"), generate(dignity3_label)

* Generating a labelled version of the ethicality3 variable
* Note: We have recoded this variable so that higher values reflect a belief that RC drones are worse, rather than better, for ease of interpretation
recode ethicality3 (3=1 "LAWS worse") (2=2 "both are the same") (1=3 "RC drones worse"), generate(ethicality3_label)

* Generating a catplot of dignity3
catcibar dignity3_label, prop title("Human dignity") subtitle("The extent to which being killed" "by a drone is undignifying") ytitle("% of participants") wrapxlab(14) saving(catplot3.gph)

* Generating a catplot of dignity3
catcibar ethicality3_label, prop title("Ethicality") subtitle("The extent to which being killed" "by a drone is ethical") ytitle("% of participants") wrapxlab(14) saving(catplot4.gph)

* Combining the two catplots into one figure
* WARNING: Color of confidence intervals, Y-axis scale and labels, and values within each bar do not match with Figure 8 in the main text; We changed/added those manually in the built-in Stata graph editor due to limited functionality of the "catcibar" command; Those wishing to replicate the exact same visualization in the main text may inspect the changes in the "rsv_ss_replication_F08.gph" file.
gr combine catplot3.gph catplot4.gph

* Exporting the catplot (Figure 8)
graph export F08.png

*** Figure 9 (coefplot) - logistic regression of LAWS preference (DV), perceived differences (IVs), subset of participants in the control group who received the preference question last ***

* To facilitate interpretation, we first recoded some variables so that higher values on all measures of perceived difference indicate a belief that autonomous drones are better than remote-controlled ones
gen target_risk5_rev = 7 - target_risk5
gen costs5_rev = 7 - costs5
gen ethicality5_rev = 7 - ethicality5

* Running the logistic regression (Model 1)
* Note: The "if group==1 & preference_last==1" command filters out participants from the "equal risk" and "equal risk + responsibility" group who received the preference question before answering the questions on perceived differences
logistic preference legal5 moral5 target_risk5_rev military_success5 costs5_rev force_restraint5 ethicality5_rev dignity5 if group==1 & preference_last==1

* Storing the estimates
estimates store M1

* Running the logistic regression (Model 2)
logistic preference legal5 moral5 target_risk5_rev military_success5 costs5_rev force_restraint5 ethicality5_rev dignity5 age male income university_degree conservative if group==1 & preference_last==1

* Storing the estimates
estimates store M2

* Running the logistic regression (Model 3)
logistic preference legal5 moral5 target_risk5_rev military_success5 costs5_rev force_restraint5 ethicality5_rev dignity5 age male income university_degree conservative robots_attitude strikes_approval if group==1 & preference_last==1

* Storing the estimates (Model 3)
estimates store M3

* Generating the coefficient plot (Figure 9)
coefplot M1, bylabel(Model 1) || M2, bylabel(Model 2) || M3, bylabel(Model 3) ||, xline(1) eform  xtitle(Odds ratio) drop(_cons) coeflabels(legal5 = "Legal accountability" moral5 = "Moral responsibility" target_risk5_rev = "Risk of target misidentification" military_success5 = "Military effectiveness" costs5_rev = "Costs" force_restraint5 = "Force restraint" ethicality5_rev = "Ethicality" dignity5 = "Human dignity" age = "Age" male = "Gender (male)" income = "Income" university_degree = "University degree" conservative = "Conservative" robots_attitude = "Attitudes to robots" strikes_approval = "Drone strikes approval") byopts(row(1) note("+ p < .1, * p < .05, ** p < .01, *** p < .001")) mlabposition(1) mlabel(cond(@pval<.001, "***", cond(@pval<.01, "**", cond(@pval<.05, "*", cond(@pval<.1, "+", "")))))

* Exporting the catplot (Figure 9)
graph export F09.png

*************************************************
*** Replication of the results in Appendix 10 ***
*************************************************

*** Appendix 10, Table 1 - ordinal logistic regression of legal accountability/moral responsibility (DVs), experimental treatment (IV) ***

* Running the ordinal logistic regression (Model 1)
ologit legal5 group_filter1 if preference_last==1

* Storing the estimates 
estimates store A10T01M01

* Running the ordinal logistic regression (Model 2)
ologit legal5 group_filter1 age i.male income i.university_degree conservative if preference_last==1

* Storing the estimates 
estimates store A10T01M02

* Running the ordinal logistic regression (Model 3)
ologit legal5 group_filter1 age i.male income i.university_degree conservative robots_attitude strikes_approval if preference_last==1

* Storing the estimates 
estimates store A10T01M03

* Running the ordinal logistic regression (Model 4)
ologit moral5 group_filter1 if preference_last==1

* Storing the estimates 
estimates store A10T01M04

* Running the ordinal logistic regression (Model 5)
ologit moral5 group_filter1 age i.male income i.university_degree conservative if preference_last==1

* Storing the estimates 
estimates store A10T01M05

* Running the ordinal logistic regression (Model 6)
ologit moral5 group_filter1 age i.male income i.university_degree conservative robots_attitude strikes_approval if preference_last==1

* Storing the estimates 
estimates store A10T01M06

* Generating a table with results (Appendix 10, Table 1)
esttab A10T01M01 A10T01M02 A10T01M03 A10T01M04 A10T01M05 A10T01M06 using A10T01.rtf, noeqlines eqlabels(none) eform nogaps se pr2 varlabels(group_filter1 "Equal risk + responsibility – Equal risk" age "Age" 1.male "Gender (male)" income "Income" 1.university_degree "University degree" conservative "Conservative" robots_attitude "Attitudes to robots" strikes_approval "Drone strikes approval" _cons "Constant") drop(0.male 0.university_degree cut1 cut2 cut3 cut4) mtitle("Legal acc." "Legal acc." "Legal acc." "Moral resp." "Moral resp." "Moral resp.") title(Table 1: Ordinal logistic regression of legal accountability/moral responsibility) nonumbers mlabels("Model 1" "Model 2" "Model 3" "Model 4" "Model 5" "Model 6")

*** Appendix 10, Table 2 - logistic regression of LAWS preference (DV), legal accountability/moral responsibility (IVs) ***

* Running the logistic regression (Model 1)
logistic preference legal5

* Storing the estimates
estimates store A10T02M01

* Running the logistic regression (Model 2)
logistic preference legal5 age i.male income i.university_degree conservative

* Storing the estimates
estimates store A10T02M02

* Running the logistic regression (Model 3)
logistic preference legal5 age i.male income i.university_degree conservative robots_attitude strikes_approval

* Storing the estimates
estimates store A10T02M03

* Running the logistic regression (Model 4)
logistic preference moral5

* Storing the estimates
estimates store A10T02M04

* Running the logistic regression (Model 5)
logistic preference moral5 age i.male income i.university_degree conservative

* Storing the estimates
estimates store A10T02M05

* Running the logistic regression (Model 6)
logistic preference moral5 age i.male income i.university_degree conservative robots_attitude strikes_approval

* Storing the estimates
estimates store A10T02M06

* Generating a table with results (Appendix 10, Table 1)
esttab A10T02M01 A10T02M02 A10T02M03 A10T02M04 A10T02M05 A10T02M06 using A10T02.rtf, noeqlines eqlabels(none) eform nogaps se pr2 varlabels(legal5 "Legal accountability (higher = RC drones worse)" moral5 "Moral responsibility (higher = RC drones worse)" age "Age" 1.male "Gender (male)" income "Income" 1.university_degree "University degree" conservative "Conservative" robots_attitude "Attitudes to robots" strikes_approval "Drone strikes approval" _cons "Constant") order(legal5 moral5 age 1.male income 1.university_degree conservative robots_attitude strikes_approval _cons) drop(0.male 0.university_degree) mtitle("prefer LAWS" "prefer LAWS" "prefer LAWS" "prefer LAWS" "prefer LAWS" "prefer LAWS") title(Table 2: Logistic regression of LAWS preference) nonumbers mlabels("Model 1" "Model 2" "Model 3" "Model 4" "Model 5" "Model 6")

*** Appendix 10, Table 3 - logistic regression of LAWS preference (DV), experimental treatment (IV) ***

* Running the logistic regression (Model 1)
logistic preference group_filter1

* Storing the estimates
estimates store A10T03M01

* Running the logistic regression (Model 2)
logistic preference group_filter1 age i.male income i.university_degree conservative

* Storing the estimates
estimates store A10T03M02

* Running the logistic regression (Model 3)
logistic preference group_filter1 age i.male income i.university_degree conservative robots_attitude strikes_approval

* Storing the estimates
estimates store A10T03M03

* Running the logistic regression (Model 4)
logistic preference group_filter1 if preference_last==0

* Storing the estimates
estimates store A10T03M04

* Running the logistic regression (Model 5)
logistic preference group_filter1 age i.male income i.university_degree conservative if preference_last==0

* Storing the estimates
estimates store A10T03M05

* Running the logistic regression (Model 6)
logistic preference group_filter1 age i.male income i.university_degree conservative robots_attitude strikes_approval if preference_last==0

* Storing the estimates
estimates store A10T03M06

* Running the logistic regression (Model 7)
logistic preference group_filter1 if preference_last==1

* Storing the estimates
estimates store A10T03M07

* Running the logistic regression (Model 8)
logistic preference group_filter1 age i.male income i.university_degree conservative if preference_last==1

* Storing the estimates
estimates store A10T03M08

* Running the logistic regression (Model 9)
logistic preference group_filter1 age i.male income i.university_degree conservative robots_attitude strikes_approval if preference_last==1

* Storing the estimates
estimates store A10T03M09

* Generating a table with results (Appendix 10, Table 3)
esttab A10T03M01 A10T03M02 A10T03M03 A10T03M04 A10T03M05 A10T03M06 A10T03M07 A10T03M08 A10T03M09 using A10T03.rtf, noeqlines eqlabels(none) eform nogaps se pr2 varlabels(group_filter1 "Equal risk + responsibility – Equal risk" age "Age" 1.male "Gender (male)" income "Income" 1.university_degree "University degree" conservative "Conservative" robots_attitude "Attitudes to robots" strikes_approval "Drone strikes approval" _cons "Constant") drop(0.male 0.university_degree) title(Table 3: Logistic regression of LAWS preference) nonumbers mlabels("Model 1" "Model 2" "Model 3" "Model 4" "Model 5" "Model 6" "Model 7" "Model 8" "Model 9")

*************************************************
*** Replication of the results in Appendix 13 ***
*************************************************

*** Appendix 13, Table 1 - logistic regression of LAWS preference (DV), human dignity (IVs) ***

* Running the logistic regression (Model 1)
logistic preference dignity5

* Storing the estimates
estimates store A13T01M01

* Running the logistic regression (Model 2)
logistic preference dignity5 age i.male income i.university_degree conservative

* Storing the estimates
estimates store A13T01M02

* Running the logistic regression (Model 3)
logistic preference dignity5 age i.male income i.university_degree conservative robots_attitude strikes_approval

* Storing the estimates
estimates store A13T01M03

* Generating a table with results (Appendix 13, Table 1)
esttab A13T01M01 A13T01M02 A13T01M03 using A13T01.rtf, noeqlines eqlabels(none) eform nogaps se pr2 varlabels(dignity5 "Human dignity (higher = RC drones worse)" age "Age" 1.male "Gender (male)" income "Income" 1.university_degree "University degree" conservative "Conservative" robots_attitude "Attitudes to robots" strikes_approval "Drone strikes approval" _cons "Constant") drop(0.male 0.university_degree) mtitle("prefer LAWS" "prefer LAWS" "prefer LAWS") title(Table 1: Logistic regression of LAWS preference) nonumbers mlabels("Model 1" "Model 2" "Model 3")

*************************************************
*** Replication of the results in Appendix 14 ***
*************************************************

*** Appendix 14, Figure 1 (catplot) - perceived differences in the risk of target misidentification ***

* Generating a catplot of target_risk3
catplot target_risk3, percent recast(bar) title("Risk of target misidentification") subtitle("The likelihood that civilians {bf:will not} be wrongly identified as targets") ytitle("% of participants") asyvars blabel(bar, pos(center) format(%2.0f) size(small)) legend(rows(1) stack size(small) order(1 "LAWS better" 2 "both are the same" 3 "RC drones better") symplacement(center)) intensity(90) b1title("")

* Exporting the catplot (Appnendix 14, Figure 1)
graph export A14F01.png

*** Appendix 14, Figure 2 (catplot) - perceived differences in military effectiveness ***

* Generating a catplot of military_success3
catplot military_success3, percent recast(bar) title("Military effectiveness") subtitle("The likelihood that using a drone will achieve mission objectives") ytitle("% of participants") asyvars blabel(bar, pos(center) format(%2.0f) size(small)) legend(rows(1) stack size(small) order(1 "LAWS worse" 2 "both are the same" 3 "RC drones worse") symplacement(center)) intensity(90) b1title("")

* Exporting the catplot (Appnendix 14, Figure 2)
graph export A14F02.png

*** Appendix 14, Figure 3 (catplot) - perceived differences in costs of use ***

* Generating a catplot of costs3
catplot costs3, percent recast(bar) title("Costs") subtitle("The extent to which using a drone is expensive") ytitle("% of participants") asyvars blabel(bar, pos(center) format(%2.0f) size(small)) legend(rows(1) stack size(small) order(1 "LAWS better" 2 "both are the same" 3 "RC drones better") symplacement(center)) intensity(90) b1title("")

* Exporting the catplot (Appnendix 14, Figure 3)
graph export A14F03.png

*** Appendix 14, Figure 4 (catplot) - perceived differences in constraints on the future use of force ***

* Generating a catplot of force_restraint3
catplot force_restraint3, percent recast(bar) title("Force restraint") subtitle("The extent to which decision-makers {bf:will not} be restrained" "in using military force in the future") ytitle("% of participants") asyvars blabel(bar, pos(center) format(%2.0f) size(small)) legend(rows(1) stack size(small) order(1 "LAWS worse" 2 "both are the same" 3 "RC drones worse") symplacement(center)) intensity(90) b1title("")

* Exporting the catplot (Appnendix 14, Figure 4)
graph export A14F04.png

*** Appendix 14, Table 1 - logistic regression of LAWS preference (DV), perceived differences (IVs), subset of participants in the control group who received the preference question last ***

* Running the logistic regression (Model 1)
logistic preference legal5 moral5 target_risk5_rev military_success5 costs5_rev force_restraint5 ethicality5_rev dignity5 if group==1 & preference_last==1

* Storing the estimates
estimates store A14T01M01

* Running the logistic regression (Model 2)
logistic preference legal5 moral5 target_risk5_rev military_success5 costs5_rev force_restraint5 ethicality5_rev dignity5 age male income university_degree conservative if group==1 & preference_last==1

* Storing the estimates
estimates store A14T01M02

* Running the logistic regression (Model 3)
logistic preference legal5 moral5 target_risk5_rev military_success5 costs5_rev force_restraint5 ethicality5_rev dignity5 age male income university_degree conservative robots_attitude strikes_approval if group==1 & preference_last==1

* Storing the estimates (Model 3)
estimates store A14T01M03

* Generating a table with results (Appendix 13, Table 1)
esttab A14T01M01 A14T01M02 A14T01M03 using A14T01.rtf, noeqlines eqlabels(none) eform nogaps se pr2 varlabels(legal5 "Legal accountability" moral5 "Moral responsibility" target_risk5_rev "Risk of target misidentification" military_success5 "Military effectiveness" costs5_rev "Costs" force_restraint5 "Force restraint" ethicality5_rev "Ethicality" dignity5 "Human dignity" age "Age" male "Gender (male)" income "Income" university_degree "University degree" conservative "Conservative" robots_attitude "Attitudes to robots" strikes_approval "Drone strikes approval" _cons "Constant") mtitle("prefer LAWS" "prefer LAWS" "prefer LAWS") title(Table 1: Logistic regression of LAWS preference) nonumbers mlabels("Model 1" "Model 2" "Model 3")

*** Appendix 14, Table 2 - multicollinearity diagnostics ***

* Generating a table with VIF scores for models 1-3
* Note: Please note that the "vif" command cannot be used after "logistic", hence the use of "regres" (i.e. OLS regression) command to generate the estimates
regres preference legal5 moral5 target_risk5_rev military_success5 costs5_rev force_restraint5 ethicality5_rev dignity5 if group==1 & preference_last==1
asdoc vif, save(A14T02.rtf)
regres preference legal5 moral5 target_risk5_rev military_success5 costs5_rev force_restraint5 ethicality5_rev dignity5 age i.male income i.university_degree conservative if group==1 & preference_last==1
asdoc vif, append(A14T02.rtf)
regres preference legal5 moral5 target_risk5_rev military_success5 costs5_rev force_restraint5 ethicality5_rev dignity5 age i.male income i.university_degree conservative robots_attitude strikes_approval if group==1 & preference_last==1
asdoc vif, append(A14T02.rtf)

*** Appendix 14, Table 1 - logistic regression of LAWS preference (DV), perceived differences (IVs), full sample ***

* Running the logistic regression (Model 1)
logistic preference legal5 moral5 target_risk5_rev military_success5 costs5_rev force_restraint5 ethicality5_rev dignity5

* Storing the estimates
estimates store A14T03M01

* Running the logistic regression (Model 2)
logistic preference legal5 moral5 target_risk5_rev military_success5 costs5_rev force_restraint5 ethicality5_rev dignity5 age male income university_degree conservative

* Storing the estimates
estimates store A14T03M02

* Running the logistic regression (Model 3)
logistic preference legal5 moral5 target_risk5_rev military_success5 costs5_rev force_restraint5 ethicality5_rev dignity5 age male income university_degree conservative robots_attitude strikes_approval

* Storing the estimates (Model 3)
estimates store A14T03M03

* Generating a table with results (Appendix 13, Table 1)
esttab A14T03M01 A14T03M02 A14T03M03 using A14T03.rtf, noeqlines eqlabels(none) eform nogaps se pr2 varlabels(legal5 "Legal accountability" moral5 "Moral responsibility" target_risk5_rev "Risk of target misidentification" military_success5 "Military effectiveness" costs5_rev "Costs" force_restraint5 "Force restraint" ethicality5_rev "Ethicality" dignity5 "Human dignity" age "Age" male "Gender (male)" income "Income" university_degree "University degree" conservative "Conservative" robots_attitude "Attitudes to robots" strikes_approval "Drone strikes approval" _cons "Constant") mtitle("prefer LAWS" "prefer LAWS" "prefer LAWS") title(Table 3: Logistic regression of LAWS preference) nonumbers mlabels("Model 1" "Model 2" "Model 3")

*************************************************
*** Replication of the results in Appendix 16 ***
*************************************************

*** Appendix 16, Figure 1 - interaction between target_risk5 and group_filter1 ***

* Genearting a labelled version of the group_filter1 variable
recode group (1=1 "Control") (2=2 "Equal risk") (3=3 "Equal risk + responsibility"), generate(group_label)

* Running the logistic regression model (Model 1)
logistic preference i.group_label##c.target_risk5

* Obtaining the margins
margins group_label, at(target_risk5=(1(0.1)5) ) 

* Generating an interaction plot
marginsplot, xlabel(1(1)5) recast(line) recastci(rarea) ciopt(color(%25)) xtitle("Risk of target misidentification") ytitle("Probability of LAWS preference") title("Full sample") ysize(3) xsize(3) saving(margins1) 

* Running the logistic regression model (Model 2)
logistic preference i.group_label##c.target_risk5 if preference_last==0

* Obtaining the margins
margins group_label, at(target_risk5=(1(0.1)5) ) 

* Generating an interaction plot
marginsplot, xlabel(1(1)5) recast(line) recastci(rarea) ciopt(color(%25)) xtitle("Risk of target misidentification") ytitle("") title("Preference first") ysize(3) xsize(3) saving(margins2)

* Running the logistic regression model (Model 3)
logistic preference i.group_label##c.target_risk5 if preference_last==1

* Obtaining the margins
margins group_label, at(target_risk5=(1(0.1)5) ) 

* Generating an interaction plot
marginsplot, xlabel(1(1)5) recast(line) recastci(rarea) ciopt(color(%25)) xtitle("Risk of target misidentification") ytitle("") title("Preference last") ysize(3) xsize(3) saving(margins3)

* Combining the two catplots into one figure
grc1leg margins1.gph margins2.gph margins3.gph, ycommon rows(1)

* Exporting the catplot (Appnendix 16, Figure 1)
graph export A16F01.png

*** Appendix 16, Table 1 - logistic regression of LAWS preference, interaction between target_risk5 and group_filter1 ***

* Running the logistic regression model (Model 1)
logistic preference i.group_label##c.target_risk5

* Storing the estimates
estimates store A16T01M01

* Running the logistic regression model (Model 2)
logistic preference i.group_label##c.target_risk5 if preference_last==0

* Storing the estimates
estimates store A16T01M02

* Running the logistic regression model (Model 3)
logistic preference i.group_label##c.target_risk5 if preference_last==1

* Storing the estimates
estimates store A16T01M03 

esttab A16T01M01 A16T01M02 A16T01M03 using A16T01.rtf, noeqlines eqlabels(none) eform nogaps se pr2 varlabels(target_risk5 "Risk of target misidentification (higher = RC drones better)" 2.group_label "Equal risk – Control" 3.group_label "Equal risk + responsibility – Control" 2.group_label#c.target_risk5 "Risk of target misidentification * Equal risk" 3.group_label#c.target_risk5 "Risk of target misidentification * Equal risk + responsibility" _cons "Constant") drop(1.group_label 1.group_label#c.target_risk5) mtitle("prefer LAWS" "prefer LAWS" "prefer LAWS") title(Table 1: Logistic regression of LAWS preference) nonumbers mlabels("Model 1" "Model 2" "Model 3")

*** Appendix 16, Table 2 - logistic regression of LAWS preference, interaction between target_risk5 and legal5 and moral5 ***

* Running the logistic regression model (Model 1)
logistic preference c.target_risk5##c.legal5

* Storing the estimates
estimates store A16T02M01

* Running the logistic regression model (Model 2)
logistic preference c.target_risk5##c.legal5 age i.male income i.university_degree conservative

* Storing the estimates
estimates store A16T02M02

* Running the logistic regression model (Model 3)
logistic preference c.target_risk5##c.legal5 age i.male income i.university_degree conservative robots_attitude strikes_approval

* Storing the estimates
estimates store A16T02M03

* Running the logistic regression model (Model 4)
logistic preference c.target_risk5##c.moral5

* Storing the estimates
estimates store A16T02M04

* Running the logistic regression model (Model 5)
logistic preference c.target_risk5##c.moral5 age i.male income i.university_degree conservative

* Storing the estimates
estimates store A16T02M05

* Running the logistic regression model (Model 6)
logistic preference c.target_risk5##c.moral5 age i.male income i.university_degree conservative robots_attitude strikes_approval

* Storing the estimates
estimates store A16T02M06

esttab A16T02M01 A16T02M02 A16T02M03 A16T02M04 A16T02M05 A16T02M06 using A16T02.rtf, noeqlines eqlabels(none) eform nogaps se pr2 varlabels(target_risk5 "Risk of target misidentification (higher = RC drones better)" legal5 "Legal accountability (higher = RC drones worse)" moral5 "Moral responsibility (higher = RC drones worse)" age "Age" 1.male "Gender (male)" income "Income" 1.university_degree "University degree" conservative "Conservative" robots_attitude "Attitudes to robots" strikes_approval "Drone strikes approval" c.target_risk5#c.legal5 "Risk of target misidentification * Legal accountability" c.target_risk5#c.moral5 "Risk of target misidentification * Moral responsibility" _cons "Constant") order(target_risk5 legal5 moral5 c.target_risk5#c.legal5 c.target_risk5#c.moral5 age 1.male income 1.university_degree conservative robots_attitude strikes_approval) drop(0.male 0.university_degree) title(Table 2: Logistic regression of LAWS preference) nonumbers mlabels("Model 1" "Model 2" "Model 3" "Model 4" "Model 5" "Model 6")

****************************
*** End replication here ***
****************************